/**
 * 
 */
package net.xfok.string.filter;

import java.util.List;

/**
 * @author howard
 *
 */
public class Filter {
	
	public static String filter(String str,Rule rule){
		if(str!=null){
			if(rule.getStartStr()!=null&&rule.getEndStr()!=null){
				int start=str.indexOf(rule.getStartStr());
				int end=str.indexOf(rule.getEndStr());
				if(start>=0&&end>start){
					str=str.substring(start+rule.getStartStr().length(), end);
				}
			}
			if(rule.getCutBack()!=null){
				int back=str.indexOf(rule.getCutBack());
				if(back>=0){
					str=str.substring(0,back);
				}
			}
			if(rule.getCutFront()!=null){
				int front=str.indexOf(rule.getCutFront());
				if(front>=0){
					str=str.substring(front+rule.getCutFront().length());
				}
			}
			if(rule.getOldStr()!=null){
				str=str.replace(rule.getOldStr(), rule.getNewStr()==null?"":rule.getNewStr());
			}
			if(rule.getRegStr()!=null){
				List<String> list=Regex.genStrByReg(str, rule.getRegStr());
				for(String reg:list){
					str.replace(reg, rule.getRegRep()==null?"":rule.getRegRep());
				}
			}
		}
		return str;
	}
}
